home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / VXAVTOOL.ZIP / EXEC-VIR.ZIP / GOATEXEC.ZIP / GOATSET.BAT < prev    next >
Encoding:
DOS Batch File  |  1997-04-03  |  15.0 KB  |  665 lines

  1. @echo off
  2. if "%1"=="" goto Usage
  3. if "%1"=="1" goto invalid
  4. if "%1"=="/?" goto Usage
  5. if "%1"=="/H" goto Usage
  6. if "%1"=="/h" goto Usage
  7. if "%2"=="/?" goto Usage
  8. if "%2"=="/H" goto Usage
  9. if "%2"=="/h" goto Usage
  10.  
  11. echo  
  12. echo ║Creating standard sacrificial GOAT file set for Size= %1
  13. echo ╚═══════════════════════════════════════════════════════════
  14.  
  15. echo ║Creating standard sacrificial GOAT file set for Size= %1 >goatset.log
  16. echo ╚═══════════════════════════════════════════════════════════ >>goatset.log
  17.  
  18. echo  
  19. echo  
  20. echo │Creating COM files first.
  21. echo └─────────────────────────────────
  22. echo  
  23.  
  24. echo   >>goatset.log
  25. echo   >>goatset.log
  26. echo │Creating COM files first.>>goatset.log
  27. echo └─────────────────────────────────>>goatset.log
  28. echo   >>goatset.log
  29.  
  30. echo Code at start, 0-filled, JMP present >!.tmp
  31. goat %1 /c/i0 >>!.tmp
  32. type !.tmp>>goatset.log
  33. rem "!.tmp" is a temporary file, deleted on exit from batch.
  34.  
  35. if ERRORLEVEL 2 goto end
  36. if ERRORLEVEL 1 goto comf1
  37. type !.tmp
  38. :comf1
  39.  
  40. echo Code at start, 0-filled, no JMP (/J)>!.tmp
  41. goat %1 /c /j/i0 >>!.tmp
  42. echo  
  43. echo   >>goatset.log
  44. type !.tmp>>goatset.log
  45.  
  46. if ERRORLEVEL 2 goto end
  47. if ERRORLEVEL 1 goto comf2
  48. type !.tmp
  49. :comf2
  50.  
  51. echo Code at start, NOPs-filled, JMP present (/9)>!.tmp
  52. goat %1 /c /9 >>!.tmp
  53. echo  
  54. echo   >>goatset.log
  55. type !.tmp>>goatset.log
  56.  
  57. if ERRORLEVEL 2 goto end
  58. if ERRORLEVEL 1 goto comf3
  59. type !.tmp
  60. :comf3
  61.  
  62. echo Code at bottom, 0-filled, JMP present (/B)>!.tmp
  63. goat %1 /c /b/i0 >>!.tmp
  64. echo  
  65. echo   >>goatset.log
  66. type !.tmp>>goatset.log
  67.  
  68. if ERRORLEVEL 2 goto end
  69. if ERRORLEVEL 1 goto comf4
  70. type !.tmp
  71. :comf4
  72.  
  73. echo NOPs-filled, code at bottom, JMP present (/B/9)>!.tmp
  74. goat %1 /c /b/9 >>!.tmp
  75. echo  
  76. echo   >>goatset.log
  77. type !.tmp>>goatset.log
  78.  
  79. if ERRORLEVEL 2 goto end
  80. if ERRORLEVEL 1 goto comf5
  81. type !.tmp
  82. :comf5
  83.  
  84. echo NOPs-filled, code at bottom, no JMP (/B/9/J)>!.tmp
  85. goat %1 /c /b/9/j >>!.tmp
  86. echo  
  87. echo   >>goatset.log
  88. type !.tmp>>goatset.log
  89.  
  90. if ERRORLEVEL 2 goto end
  91. if ERRORLEVEL 1 goto comf7
  92. type !.tmp
  93. :comf7
  94.  
  95. echo Code at start, 0-filled, JMP present, readonly (/R) >!.tmp
  96. goat %1 /c /r/i0>>!.tmp
  97. echo  
  98. echo   >>goatset.log
  99. type !.tmp>>goatset.log
  100.  
  101. if ERRORLEVEL 2 goto end
  102. if ERRORLEVEL 1 goto comf8
  103. type !.tmp
  104. :comf8
  105.  
  106. echo Code at start, 0-filled, no JMP, readonly (/J/R)>!.tmp
  107. goat %1 /c /j/r/i0 >>!.tmp
  108. echo  
  109. echo   >>goatset.log
  110. type !.tmp>>goatset.log
  111.  
  112. if ERRORLEVEL 2 goto end
  113. if ERRORLEVEL 1 goto comf9
  114. type !.tmp
  115. :comf9
  116.  
  117. echo Code at start, NOPs-filled, JMP present, readonly (/9/R)>!.tmp
  118. goat %1 /c /9/r >>!.tmp
  119. echo  
  120. echo   >>goatset.log
  121. type !.tmp>>goatset.log
  122.  
  123. if ERRORLEVEL 2 goto end
  124. if ERRORLEVEL 1 goto comf10
  125. type !.tmp
  126. :comf10
  127.  
  128. echo Code at bottom, 0-filled, JMP present, readonly (/B/R)>!.tmp
  129. goat %1 /c /b/r/i0 >>!.tmp
  130. echo  
  131. echo   >>goatset.log
  132. type !.tmp>>goatset.log
  133.  
  134. if ERRORLEVEL 2 goto end
  135. if ERRORLEVEL 1 goto comf11
  136. type !.tmp
  137. :comf11
  138.  
  139. echo NOPs-filled, code at bottom, JMP present (/B/9/R)>!.tmp
  140. goat %1 /c /b/9/r >>!.tmp
  141. echo  
  142. echo   >>goatset.log
  143. type !.tmp>>goatset.log
  144.  
  145. if ERRORLEVEL 2 goto end
  146. if ERRORLEVEL 1 goto comf12
  147. type !.tmp
  148. :comf12
  149.  
  150. echo NOPs-filled, code at bottom, no JMP, readonly (/B/9/J/R)>!.tmp
  151. goat %1 /c /b/9/j/r >>!.tmp
  152. echo  
  153. echo   >>goatset.log
  154. type !.tmp>>goatset.log
  155.  
  156. if ERRORLEVEL 2 goto end
  157. if ERRORLEVEL 1 goto comf14
  158. type !.tmp
  159. :comf14
  160.  
  161. echo  
  162. echo  
  163. echo │Creating EXE files with 512-bytes header.
  164. echo └─────────────────────────────────────────────────
  165. echo  
  166.  
  167. echo   >>goatset.log
  168. echo   >>goatset.log
  169. echo │Creating EXE files with 512-bytes header. >>goatset.log
  170. echo └───────────────────────────────────────────────── >>goatset.log
  171. echo   >>goatset.log
  172.  
  173. echo EXE file (MZ header-512), 0-filled, code at start, JMP present (/E)>!.tmp
  174. goat %1 /c /e/i0 >>!.tmp
  175. type !.tmp>>goatset.log
  176.  
  177. if ERRORLEVEL 2 goto end
  178. if ERRORLEVEL 1 goto exe1
  179. type !.tmp
  180. :exe1
  181.  
  182. echo EXE file (MZ header-512), 0-filled, code at start, no JMP (/E/J)>!.tmp
  183. goat %1 /c /e/j/i0 >>!.tmp
  184. echo  
  185. echo   >>goatset.log
  186. type !.tmp>>goatset.log
  187.  
  188. if ERRORLEVEL 2 goto end
  189. if ERRORLEVEL 1 goto exe2
  190. type !.tmp
  191. :exe2
  192.  
  193. echo EXE file (MZ header-512), NOPs-filled, code at start, JMP present (/E/9)>!.tmp
  194. goat %1 /c /e/9 >>!.tmp
  195. echo  
  196. echo   >>goatset.log
  197. type !.tmp>>goatset.log
  198.  
  199. if ERRORLEVEL 2 goto end
  200. if ERRORLEVEL 1 goto exe3
  201. type !.tmp
  202. :exe3
  203.  
  204. echo EXE file (MZ header-512), 0-filled, code at bottom, JMP present (/E/B)>!.tmp
  205. goat %1 /c /e/b/i0 >>!.tmp
  206. echo  
  207. echo   >>goatset.log
  208. type !.tmp>>goatset.log
  209.  
  210. if ERRORLEVEL 2 goto end
  211. if ERRORLEVEL 1 goto exe4
  212. type !.tmp
  213. :exe4
  214.  
  215. echo EXE file (MZ header-512), NOPs-filled, code at bottom, JMP present (/E/B/9)>!.tmp
  216. goat %1 /c /e/b/9 >>!.tmp
  217. echo  
  218. echo   >>goatset.log
  219. type !.tmp>>goatset.log
  220.  
  221. if ERRORLEVEL 2 goto end
  222. if ERRORLEVEL 1 goto exe5
  223. type !.tmp
  224. :exe5
  225.  
  226. echo EXE file (MZ header-512), 0-filled, code at bottom, no JMP (/E/B/J)>!.tmp
  227. goat %1 /c /e/b/j/i0 >>!.tmp
  228. echo  
  229. echo   >>goatset.log
  230. type !.tmp>>goatset.log
  231.  
  232. if ERRORLEVEL 2 goto end
  233. if ERRORLEVEL 1 goto exe6
  234. type !.tmp
  235. :exe6
  236.  
  237. echo EXE file (MZ header-512), NOPs-filled, code at bottom, no JMP (/E/B/9/J)>!.tmp
  238. goat %1 /c /e/b/9/j >>!.tmp
  239. echo  
  240. echo   >>goatset.log
  241. type !.tmp>>goatset.log
  242.  
  243. if ERRORLEVEL 2 goto end
  244. if ERRORLEVEL 1 goto exe7
  245. type !.tmp
  246. :exe7
  247.  
  248. echo MZ header-512, 0-filled, code at start, JMP present, readonly (/E/R)>!.tmp
  249. goat %1 /c /e/r/i0 >>!.tmp
  250. echo  
  251. echo   >>goatset.log
  252. type !.tmp>>goatset.log
  253.  
  254. if ERRORLEVEL 2 goto end
  255. if ERRORLEVEL 1 goto rexe1
  256. type !.tmp
  257. :rexe1
  258.  
  259. echo MZ header-512, 0-filled, code at start, no JMP,readonly (/E/J/R)>!.tmp
  260. goat %1 /c /e/j/r/i0 >>!.tmp
  261. echo  
  262. echo   >>goatset.log
  263. type !.tmp>>goatset.log
  264.  
  265. if ERRORLEVEL 2 goto end
  266. if ERRORLEVEL 1 goto rexe2
  267. type !.tmp
  268. :rexe2
  269.  
  270. echo MZ header-512, NOPs-filled, code at start, JMP present, readonly (/E/9/R)>!.tmp
  271. goat %1 /c /e/9/r >>!.tmp
  272. echo  
  273. echo   >>goatset.log
  274. type !.tmp>>goatset.log
  275.  
  276. if ERRORLEVEL 2 goto end
  277. if ERRORLEVEL 1 goto rexe3
  278. type !.tmp
  279. :rexe3
  280.  
  281. echo MZ header-512, 0-filled, code at bottom, JMP present, readonly (/E/B/R)>!.tmp
  282. goat %1 /c /e/b/r/i0 >>!.tmp
  283. echo  
  284. echo   >>goatset.log
  285. type !.tmp>>goatset.log
  286.  
  287. if ERRORLEVEL 2 goto end
  288. if ERRORLEVEL 1 goto rexe4
  289. type !.tmp
  290. :rexe4
  291.  
  292. echo MZ header-512, NOPs-filled, code at bottom, JMP present, readonly (/E/B/9/R)>!.tmp
  293. goat %1 /c /e/b/9/r >>!.tmp
  294. echo  
  295. echo   >>goatset.log
  296. type !.tmp>>goatset.log
  297.  
  298. if ERRORLEVEL 2 goto end
  299. if ERRORLEVEL 1 goto rexe5
  300. type !.tmp
  301. :rexe5
  302.  
  303. echo MZ header-512, 0-filled, code at bottom, no JMP, readonly (/E/B/J/R)>!.tmp
  304. goat %1 /c /e/b/j/r/i0 >>!.tmp
  305. echo  
  306. echo   >>goatset.log
  307. type !.tmp>>goatset.log
  308.  
  309. if ERRORLEVEL 2 goto end
  310. if ERRORLEVEL 1 goto rexe6
  311. type !.tmp
  312. :rexe6
  313.  
  314. echo MZ header-512, NOPs-filled, code at bottom, no JMP, readonly (/E/B/9/J/R)>!.tmp
  315. goat %1 /c /e/b/9/j/r >>!.tmp
  316. echo  
  317. echo   >>goatset.log
  318. type !.tmp>>goatset.log
  319.  
  320. if ERRORLEVEL 2 goto end
  321. if ERRORLEVEL 1 goto rexe7
  322. type !.tmp
  323. :rexe7
  324.  
  325. echo  
  326. echo  
  327. echo │Creating EXE files with 32-bytes header.
  328. echo └────────────────────────────────────────────────
  329. echo  
  330.  
  331. echo   >>goatset.log
  332. echo   >>goatset.log
  333. echo │Creating EXE files with 32-bytes header. >>goatset.log
  334. echo └──────────────────────────────────────────────── >>goatset.log
  335. echo   >>goatset.log
  336.  
  337. echo EXE file (MZ header-32), 0-filled, code at start, JMP present (/E2)>!.tmp
  338. goat %1 /c /e2/i0 >>!.tmp
  339. type !.tmp>>goatset.log
  340.  
  341. if ERRORLEVEL 2 goto end
  342. if ERRORLEVEL 1 goto exe8
  343. type !.tmp
  344. :exe8
  345.  
  346. echo EXE file (MZ header-32), 0-filled, code at start, no JMP (/E2/J)>!.tmp
  347. goat %1 /c /e2/j/i0 >>!.tmp
  348. echo  
  349. echo   >>goatset.log
  350. type !.tmp>>goatset.log
  351.  
  352. if ERRORLEVEL 2 goto end
  353. if ERRORLEVEL 1 goto exe9
  354. type !.tmp
  355. :exe9
  356.  
  357. echo EXE file (MZ header-32), NOPs-filled, code at start, JMP present (/E2/9)>!.tmp
  358. goat %1 /c /e2/9 >>!.tmp
  359. echo  
  360. echo   >>goatset.log
  361. type !.tmp>>goatset.log
  362.  
  363. if ERRORLEVEL 2 goto end
  364. if ERRORLEVEL 1 goto exe10
  365. type !.tmp
  366. :exe10
  367.  
  368. echo EXE file (MZ header-32), 0-filled, code at bottom, JMP present (/E2/B)>!.tmp
  369. goat %1 /c /e2/b/i0 >>!.tmp
  370. echo  
  371. echo   >>goatset.log
  372. type !.tmp>>goatset.log
  373.  
  374. if ERRORLEVEL 2 goto end
  375. if ERRORLEVEL 1 goto exe11
  376. type !.tmp
  377. :exe11
  378.  
  379. echo EXE file (MZ header-32), NOPs-filled, code at bottom, JMP present (/E2/B/9)>!.tmp
  380. goat %1 /c /e2/b/9 >>!.tmp
  381. echo  
  382. echo   >>goatset.log
  383. type !.tmp>>goatset.log
  384.  
  385. if ERRORLEVEL 2 goto end
  386. if ERRORLEVEL 1 goto exe12
  387. type !.tmp
  388. :exe12
  389.  
  390. echo EXE file (MZ header-32), 0-filled, code at bottom, no JMP (/E2/B/J)>!.tmp
  391. goat %1 /c /e2/b/j/i0 >>!.tmp
  392. echo  
  393. echo   >>goatset.log
  394. type !.tmp>>goatset.log
  395.  
  396. if ERRORLEVEL 2 goto end
  397. if ERRORLEVEL 1 goto exe13
  398. type !.tmp
  399. :exe13
  400.  
  401. echo EXE file (MZ header-32), 0-filled, code at bottom, no JMP (/E2/B/9/J)>!.tmp
  402. goat %1 /c /e2/b/9/j/i0 >>!.tmp
  403. echo  
  404. echo   >>goatset.log
  405. type !.tmp>>goatset.log
  406.  
  407. if ERRORLEVEL 2 goto end
  408. if ERRORLEVEL 1 goto exe14
  409. type !.tmp
  410. :exe14
  411.  
  412. echo MZ header-32, 0-filled, code at start, JMP present, readonly (/E2/R)>!.tmp
  413. goat %1 /c /e2/r/i0 >>!.tmp
  414. echo  
  415. echo   >>goatset.log
  416. type !.tmp>>goatset.log
  417.  
  418. if ERRORLEVEL 2 goto end
  419. if ERRORLEVEL 1 goto rexe8
  420. type !.tmp
  421. :rexe8
  422.  
  423. echo MZ header-32, 0-filled, code at start, no JMP, readonly (/E2/J/R)>!.tmp
  424. goat %1 /c /e2/j/r/i0 >>!.tmp
  425. echo  
  426. echo   >>goatset.log
  427. type !.tmp>>goatset.log
  428.  
  429. if ERRORLEVEL 2 goto end
  430. if ERRORLEVEL 1 goto rexe9
  431. type !.tmp
  432. :rexe9
  433.  
  434. echo MZ header-32, NOPs-filled, code at start, JMP present, readonly (/E2/9/R)>!.tmp
  435. goat %1 /c /e2/9/r >>!.tmp
  436. echo  
  437. echo   >>goatset.log
  438. type !.tmp>>goatset.log
  439.  
  440. if ERRORLEVEL 2 goto end
  441. if ERRORLEVEL 1 goto rexe10
  442. type !.tmp
  443. :rexe10
  444.  
  445. echo MZ header-32, 0-filled, code at bottom, JMP present, readonly (/E2/B/R)>!.tmp
  446. goat %1 /c /e2/b/r/i0 >>!.tmp
  447. echo  
  448. echo   >>goatset.log
  449. type !.tmp>>goatset.log
  450.  
  451. if ERRORLEVEL 2 goto end
  452. if ERRORLEVEL 1 goto rexe11
  453. type !.tmp
  454. :rexe11
  455.  
  456. echo MZ header-32, NOPs-filled, code at bottom, JMP present, readonly (/E2/B/9/R)>!.tmp
  457. goat %1 /c /e2/b/9/r >>!.tmp
  458. echo  
  459. echo   >>goatset.log
  460. type !.tmp>>goatset.log
  461.  
  462. if ERRORLEVEL 2 goto end
  463. if ERRORLEVEL 1 goto rexe12
  464. type !.tmp
  465. :rexe12
  466.  
  467. echo MZ header-32, 0-filled, code at bottom, no JMP, readonly (/E2/B/J/R)>!.tmp
  468. goat %1 /c /e2/b/j/r/i0 >>!.tmp
  469. echo  
  470. echo   >>goatset.log
  471. type !.tmp>>goatset.log
  472.  
  473. if ERRORLEVEL 2 goto end
  474. if ERRORLEVEL 1 goto rexe13
  475. type !.tmp
  476. :rexe13
  477.  
  478. echo MZ header-32, 0-filled, code at bottom, no JMP, readonly (/E2/B/9/J/R)>!.tmp
  479. goat %1 /c /e2/b/9/j/r/i0 >>!.tmp
  480. echo  
  481. echo   >>goatset.log
  482. type !.tmp>>goatset.log
  483.  
  484. if ERRORLEVEL 2 goto end
  485. if ERRORLEVEL 1 goto rexe14
  486. type !.tmp
  487. :rexe14
  488.  
  489. echo  
  490. echo  
  491. echo │Varying EXE internal structure ('ZM', SS/SP and stack).
  492. echo └──────────────────────────────────────────────────────────────
  493. echo  
  494.  
  495. echo   >>goatset.log
  496. echo   >>goatset.log
  497. echo │Varying EXE internal structure ('ZM', SS/SP and stack). >>goatset.log
  498. echo └────────────────────────────────────────────────────────────── >>goatset.log
  499. echo   >>goatset.log
  500.  
  501. echo EXE file (ZM header-512), 0-filled, code at bottom, JMP (/Z/B/V)>!.tmp
  502. goat %1 /c /z/b/v/i0 >>!.tmp
  503. type !.tmp>>goatset.log
  504.  
  505. if ERRORLEVEL 2 goto end
  506. if ERRORLEVEL 1 goto exe15
  507. type !.tmp
  508. :exe15
  509.  
  510. echo EXE file (ZM header-32), 0-filled, code at bottom, JMP (/Z/E2/B/V)>!.tmp
  511. goat %1 /c /z/e2/b/v/i0 >>!.tmp
  512. echo  
  513. echo   >>goatset.log
  514. type !.tmp>>goatset.log
  515.  
  516. if ERRORLEVEL 2 goto end
  517. if ERRORLEVEL 1 goto exe16
  518. type !.tmp
  519. :exe16
  520.  
  521. echo EXE file (MZ header-512), 0-filled, code at bottom, JMP, SP=IP, SS=CS (/E/B/V)>!.tmp
  522. goat %1 /c /e/b/v/i0 >>!.tmp
  523. echo  
  524. echo   >>goatset.log
  525. type !.tmp>>goatset.log
  526.  
  527. if ERRORLEVEL 2 goto end
  528. if ERRORLEVEL 1 goto exe17
  529. type !.tmp
  530. :exe17
  531.  
  532. echo EXE file (MZ header-32), 0-filled, code at bottom, JMP, SP=IP, SS=CS (/E2/B/V)>!.tmp
  533. goat %1 /c /e2/b/v/i0 >>!.tmp
  534. echo  
  535. echo   >>goatset.log
  536. type !.tmp>>goatset.log
  537.  
  538. if ERRORLEVEL 2 goto end
  539. if ERRORLEVEL 1 goto exe18
  540. type !.tmp
  541. :exe18
  542.  
  543. echo EXE file (MZ header-512), 0-filled, code at bottom, JMP & STACK (/E/B/K256)>!.tmp
  544. goat %1 /c /e/b/k256/i0 >>!.tmp
  545. echo  
  546. echo   >>goatset.log
  547. type !.tmp>>goatset.log
  548.  
  549. if ERRORLEVEL 2 goto end
  550. if ERRORLEVEL 1 goto exe19
  551. type !.tmp
  552. :exe19
  553.  
  554. echo EXE file (MZ header-32), 0-filled, code at bottom, JMP & STACK (/E2/B/K256)>!.tmp
  555. goat %1 /c /e2/b/k256/i0 >>!.tmp
  556. echo  
  557. echo   >>goatset.log
  558. type !.tmp>>goatset.log
  559.  
  560. if ERRORLEVEL 2 goto end
  561. if ERRORLEVEL 1 goto exe20
  562. type !.tmp
  563. :exe20
  564.  
  565. echo  
  566. echo  
  567. echo │Creating device drivers (SYS) with SYS-COM and SYS-EXE structure
  568. echo └────────────────────────────────────────────────────────────────
  569. echo  
  570.  
  571. echo   >>goatset.log
  572. echo   >>goatset.log
  573. echo │Creating device drivers (SYS) with SYS-COM and SYS-EXE structure >>goatset.log
  574. echo └──────────────────────────────────────────────────────────────── >>goatset.log
  575. echo   >>goatset.log
  576.  
  577. echo SYS file (simple), 0-filled, code at start (/Y)>!.tmp
  578. goat %1 /c /y/i0 >>!.tmp
  579. type !.tmp>>goatset.log
  580.  
  581. if ERRORLEVEL 2 goto end
  582. if ERRORLEVEL 1 goto sys1
  583. type !.tmp
  584. :sys1
  585.  
  586. echo SYS file (simple), 0-filled, code at bottom (/Y/B)>!.tmp
  587. goat %1 /c /y/b/i0 >>!.tmp
  588. echo  
  589. echo   >>goatset.log
  590. type !.tmp>>goatset.log
  591.  
  592. if ERRORLEVEL 2 goto end
  593. if ERRORLEVEL 1 goto sys2
  594. type !.tmp
  595. :sys2
  596.  
  597. echo SYS-EXE file (MZ header-512), 0-filled, code at start (/Y/E)>!.tmp
  598. goat %1 /c /y/e/i0 >>!.tmp
  599. echo  
  600. echo   >>goatset.log
  601. type !.tmp>>goatset.log
  602.  
  603. if ERRORLEVEL 2 goto end
  604. if ERRORLEVEL 1 goto sys3
  605. type !.tmp
  606. :sys3
  607.  
  608. echo SYS-EXE file (MZ header-512), 0-filled, code at bottom (/Y/E/B)>!.tmp
  609. goat %1 /c /y/e/b/i0 >>!.tmp
  610. echo  
  611. echo   >>goatset.log
  612. type !.tmp>>goatset.log
  613.  
  614. if ERRORLEVEL 2 goto end
  615. if ERRORLEVEL 1 goto sys4
  616. type !.tmp
  617. :sys4
  618.  
  619. echo SYS-EXE file (MZ header-32), 0-filled, code at start (/Y/E2)>!.tmp
  620. goat %1 /c /y/e2/i0 >>!.tmp
  621. echo  
  622. echo   >>goatset.log
  623. type !.tmp>>goatset.log
  624.  
  625. if ERRORLEVEL 2 goto end
  626. if ERRORLEVEL 1 goto sys5
  627. type !.tmp
  628. :sys5
  629.  
  630. echo SYS-EXE file (MZ header-32), 0-filled, code at bottom (/Y/E2/B)>!.tmp
  631. goat %1 /c /y/e2/b/i0 >>!.tmp
  632. echo  
  633. echo   >>goatset.log
  634. type !.tmp>>goatset.log
  635.  
  636. if ERRORLEVEL 2 goto end
  637. if ERRORLEVEL 1 goto sys6
  638. type !.tmp
  639. :sys6
  640.  
  641. echo │Inspect GOATSET.LOG file for the protocol of a set generation.
  642. echo └──────────────────────────────────────────────────────────────
  643. goto end
  644.  
  645. :Usage
  646. echo GOATSET.BAT  -  Version 4.2  -  (C) MIG  -  Not for commercial use.
  647. echo  
  648. echo Usage: GOATSET.BAT Size
  649. echo  
  650. echo            Size    - decimal, hexadecimal, or in kbytes
  651. echo                      (Example: 10000, 65530, 3E00h, FF00h, 31k, 512K, 2048k)
  652. echo  
  653. echo            Files created: GOAT000.COM, GOAT001.COM, ... GOAT049.EXE.
  654. echo  
  655. echo Author: Igor G. Muttik, Virus Lab, S&S International, Aylesbury, UK, HP19 3XU
  656. echo Email: MIG@sands.co.uk, MIG@lt.phys.msu.su  Phone: +44 1296 318700 ext.2756
  657. echo  
  658. goto end
  659.  
  660. :invalid
  661. @echo Size specified is too small.
  662.  
  663. :end
  664. if EXIST !.tmp del !.tmp
  665.